查看原文
其他

AitM 网络钓鱼工具包如何逃避检测:第 2 部分

Ots安全
2024-11-17

在我们之前的博客文章中,我们研究了当时最新的 NakedPages AiTM 网络钓鱼工具包实例为逃避检测而实施的一系列技术。在这里,我们将仔细研究当前网络钓鱼工具包用于破解常见登录页面检测签名的一些更有趣的技术。

从我们上次中断的地方继续...

在我们之前的博客文章中,我们研究了当时最新的 NakedPages AiTM 网络钓鱼工具包为逃避检测而实施的一系列技术。之前介绍的技术主要是为了使防御者的两种检测策略更加困难:

  • 编写工具包签名:通过大量使用随机化、不断更改托管域/IP、合法托管选项等,防御者很难维护有效的签名来检测通用网络钓鱼工具包代码或它们的托管位置。

  • 自动化动态分析:与恶意软件的沙盒逃避类似,网络钓鱼工具包旨在逃避自动发现和分析,例如通过使用 Cloudflare Turnstile 机器人检测,并需要合法的浏览器交互和 JavaScript 执行,以便执行流达到恶意网络钓鱼功能。

在这篇博文中,我们将深入研究基于签名的检测的特定类别以及攻击者如何绕过它们:登录页面签名。

登录页面签名 101

目前,绝大多数常见的 AiTM 网络钓鱼工具包都以最主要的身份提供商 (IdP) 为目标,例如 Microsoft Entra 或 Google Workspace。它们通常会模拟这些平台的登录页面,以确保受害者使用正确的密码和 MFA 因素并完成登录过程,这样攻击者就可以窃取有效的会话。

因此,安全产品供应商自然希望摆脱基于不断变化的网络钓鱼工具包签名的不可靠检测,转而检测看起来像 Microsoft Entra、Google Workspace(或任何其他常见 IdP)但未托管在官方域上的登录页面。这样做的好处是,您可以专注于固定的已知目标,而不是不断移动的目标(例如网络钓鱼工具包代码库)。

然而,攻击者已经成功领先一步,并使用各种技术来突破这些检测并对抗对策。

签名规避策略

好吧,就像大多数好主意一样,其他人已经想到了——许多网络钓鱼工具包会先发制人地采取措施来逃避基于登录页面签名的检测。所使用的具体逃避技术有助于了解目前存在哪些检测技术,以及需要规避哪些检测技术。

在深入研究具体示例之前,让我们首先考虑一下这方面的一般策略:文档对象模型(DOM)混淆和视觉混淆。 

DOM 混淆

这是比较传统的规避方法。攻击者的目标是获得一个肉眼看来与真实页面完全相同的登录页面。

但这并不意味着底层 DOM(或加载的 HTML、CSS 和 JS 代码)需要与实际登录页面相同甚至相似。可以构建一个完全不同的 DOM,以使用非常不同的底层代码来确保相同的视觉输出。

还可以使用动态修改技术来确保 DOM 在执行期间发生变化,以阻止固定时间点分析控制(例如 Web 代理可能使用的那些控制)。  

视觉混淆

随着机器学习 (ML) 和其他人工智能 (AI) 技术能力的不断增强,我们不再需要仅仅查看底层代码和文本签名。有一系列基于计算机视觉的技术可用于模拟更人性化的方法来评估登录页面是否与另一个示例匹配。

因此,击败登录页面签名的另一种方法是执行视觉混淆技术,该技术可以阻止基于计算机视觉的检测,同时仍然可以欺骗人类用户。

DOM 混淆技术

为了保持一致性,我们将重点关注 Microsoft 登录钓鱼工具包,因为它们是最常见的(到目前为止),但我们将从观察到的一些不同样本中进行选择。让我们从我们在野外看到的几个 DOM 混淆示例开始:

#1 – DOM 结构改变

如果攻击者只是克隆微软的登录页面,那么我们会看到非常相似(如果不是完全相同)的 DOM 结构,对吧?毕竟,在视觉上模拟网页的最简单方法是直接复制 HTML,或者像 Evilginx 这样的工具一样,以最少的更改透明地将请求代理到真实目标。这将使检测变得更加简单,因为我们有一个已知的代码结构可供查找。

不幸的是,攻击者经常会故意对肉眼几乎一模一样的东西使用完全不同的 DOM 结构。这需要付出很多努力才能实现,所以这样做的原因几乎肯定是为了避开这种检测技术。  

查看下面的示例,了解合法 Microsoft 登录页面和一个网络钓鱼示例的 DOM 结构的高级解释。您可以看到它们在视觉上非常相似,但在查看 DOM 代码时却截然不同:

合法的微软登录页面,请看右侧DOM中HTML标签的简单分析

钓鱼页面——右侧 DOM 中的 HTML 标签明显不同

#2 – 随机化页面标题

HTML 页面标题是检查相似度的一个非常具体的地方。对于 Microsoft,它可能会根据服务略有变化,但如果我们使用 Outlook 作为示例,则页面标题为“登录 Outlook”。它还有一个 Microsoft 徽标的图标(我们将在本文后面讨论的另一个问题)。攻击者随机化页面标题以逃避基本检测并不奇怪——有多少用户真的会注意到任何差异?

有些工具包,比如我们在上一篇文章中看到的 NakedPages 案例研究,使用纯随机的字母数字文本。其他工具包使用英文单词,如果用户检查这些单词,这些单词可能看起来无害,但实际上在迭代之间是随机的,以确保任何一组被标记的单词都不会完全阻止网络钓鱼工具包的运行。 

例如,请参见下面同一个网络钓鱼工具包的三个刷新示例,并将其与旁边的合法 Outlook 登录页面标题进行比较。

网络钓鱼工具包的随机页面标题与合法 Outlook 登录信息的比较

#3 – 桌面控制技术(例如 NoVNC)

最常见的 AiTM 网络钓鱼技术是某种形式的网络代理方法,受害者与合法网站进行交互,该网站将某些请求代理到真正的后端。然而,这不是唯一的方法。一些工具利用中间浏览器 (BiTM) 技术,该技术涉及使用桌面共享技术来远程控制攻击者的浏览器。 

如果您想了解更多信息,请查看我们之前有关 AiTM 网络钓鱼的文章。

对于攻击者来说,这样做的好处是,该网站实际上与目标网站在幕后完全不同。如果有什么不同的话,它看起来就像任何其他使用类似技术(如 NoVNC)的网站一样。

例如,请参见以下使用开源 BiTM 工具EvilNoVNC的屏幕截图示例。您可以看到,由于使用了此技术,底层 HTML 和 DOM 完全不同,实际上整个页面只是一个像视频一样呈现的 HTML 画布元素。

EvilNoVNC 工具及其代表的底层 HTML 结构

4.动态文本解码

有时检测工具可能会尝试对非常具体的字符串进行签名。让我们以登录页面上显示的文本为例。虽然大多数登录文本可能非常通用,例如“登录”,但情况并非总是如此。为了显得真实,攻击者最好保持原样,但这会使其容易受到签名检测。 

例如,微软登录页面上的占位符文本是“电子邮件、电话或 Skype”。特别是考虑到微软曾经收购过 Skype,这实际上是一段非常具体的文本,你通常不会在登录页面的用户名字段中看到它。 

那么,如何保留这些文本,但又使其更难签名呢?好吧,您可以采用经典的解码技术来避免静态签名。在这种情况下,使用 JavaScript 的 atob() 函数从 base64 解码,以便在执行期间动态加载该文本,而不是将其静态地放在 HTML 中。这使得使用常见的时间点静态分析技术创建签名变得更加困难。

使用 atob() base64 解码来隐藏特定文本的网络钓鱼工具包示例

5. 图像元素混淆

我们现在开始转向更多基于视觉的混淆元素,但首先让我们介绍一个跨越两者的有趣例子。

许多登录页面都会有非常清晰的供应商徽标示例,这些徽标出现在登录页面的特定位置和元素中。这是真实视觉体验的重要组成部分,因此攻击者希望将它们保留在那里。但是,作为防御者,我们可以专门寻找这些元素,既可以用于纯结构匹配技术,也可以作为以后视觉匹配技术的预处理步骤(例如,视觉匹配徽标,而不是整个页面)。 

因此,攻击者可能希望混淆这一方面,以使匹配或定位登录页面中使用的图像变得困难,同时仍确保它们在用户看来是相同的。

下面,我们可以看到合法的 Microsoft 登录页面和钓鱼工具包的对比。您可以看到原始页面中如何使用具有特定大小和名称的标准 HTML <img> 元素。相比之下,我们的钓鱼工具包将其替换为不同大小的 <div> 元素,并使用背景图像样式来确保 <div> 最终具有相同的视觉外观,尽管结构存在差异。

合法的 Microsoft 登录页面,显示代表徽标的 HTML <img> 元素

网络钓鱼工具包显示使用不同大小的 <div> 元素来表示徽标

视觉混淆技术

似乎这还不够,让我们继续讨论攻击者也在使用的某些视觉混淆技术。

#6 – 网站图标更改

我们在之前讨论 HTML 页面标题随机化时就有效地看到了这一点。网站图标也是查找供应商徽标明显用途的简单位置。有多少合法网站会将 Microsoft 徽标用作其网站图标?如果他们这样做,他们可能很快就会收到一封停止和终止信!

网站图标也以固定大小呈现,因此如果攻击者想要确保 Microsoft 徽标显示为其页面的网站图标,则它会为防御者提供一个固定目标来对克隆的徽标进行图像识别。 

在这个网络钓鱼工具包示例中,看起来作者已经决定最好将网站图标留空,以避免受到这种检测技术的攻击。

合法徽标作为 Microsoft 登录页面的图标与钓鱼工具包留空的图标的比较

7、模糊的背景图像

好吧,这个方法很巧妙。假设我们作为防守方,想要使用复杂的图像识别技术来检测与微软登录页面整体外观非常相似的网站。在渲染分辨率等方面可能存在许多挑战,但从概念上讲,我们可以尝试匹配整个页面。 

但是,如果攻击者对看起来仍然真实的页面进行实质性的视觉更改,那么这将阻止该技术有效运行。当模式弹出时,一种常见的图形设计方法是模糊背景。一些网络钓鱼工具包在其登录页面上使用类似的技术,使用来自合法 Microsoft 来源的各种不同背景图像。 

第一次看到这个页面时,你很容易以为自己已经看过一百遍了。它看起来非常熟悉和真实……但事实并非如此。真正的登录页面有一个空白的背景。因此,任何寻找整个页面视觉相似性的算法都不会匹配,因为它们实际上是完全不同的。 

这是对人类大脑和我们解读图像的方式的欺骗,而不是对计算机视觉算法的欺骗。请看下面的网络钓鱼示例和真实的 Microsoft 登录页面:

针对 Microsoft 登录名的网络钓鱼工具包使用的模糊背景示例

合法的 Microsoft 登录页面,背景为普通,作为比较

#8 – 替换标志

您可能已经注意到上一张图片的另一个变化——所使用的徽标。我们之前看到过,一些钓鱼工具包通过 DOM 混淆技术使识别图片中的单个徽标变得更加困难。然而,另一种方法是用相似的徽标替换徽标,让用户感觉真实,但在视觉上却完全不同。

在这种情况下,网络钓鱼工具包选择使用较新的紫色六边形 Microsoft 365 徽标代替登录页面上的标准 Microsoft 徽标。用户无疑会熟悉这个属于 Microsoft 的徽标,因此它仍然给人一种真实感。但是,想要匹配原始徽标的计算机视觉算法却不知道这一点!

钓鱼工具包使用的徽标替换,使页面看起来仍然真实,但避免使用计算机视觉算法可能寻找的预期徽标

#9 - 子图像混淆

好的,假设攻击者想要使用真实的徽标,他们甚至使用我们之前看到的图像元素混淆方法将图像动态设置为 <div> 元素的背景图像。 

然而,这些图像并非不可能被分离和分析。也许防御者可能会枚举所有 div,计算背景图像并对其进行分析。我们可以在下面看到一个使用代码执行此操作的示例,以确定网络钓鱼工具包中 <div> 元素使用的图像:

查询钓鱼工具包中用于显示 Microsoft 徽标的 div,以确定已设置的背景图像

这为我们提供了设置为背景图像的 base64 图像数据。但是,如果我们直接查看该图像数据,我们会发现它是图像的模糊形式,尽管它在嵌入整个页面时经过适当裁剪后可以正确显示:

直接查看图像数据时的混淆形式

这使得视觉算法更难匹配徽标,因为显然它们并不完全相同。相反,精心构建 div 和相关 DOM 可确保这些模糊的边缘部分不会在视觉上显示给用户。

结论

在我们之前的文章中,我们研究了网络钓鱼工具包用来避免检测的一组高级技术。在本文中,我们深入研究了一种破解登录页面签名的特定策略,并展示了即使在这一策略中,也有许多不同的子技术可用于逃避常见的检测。

通过查看这里和第 1 部分中讨论的规避技术,可以清楚地看出,攻击者有意识地寻求绕过通常通过网络流量分析(使用网络代理检查工具或安全网络网关)或网站沙盒(例如电子邮件安全设备提供的链接分析)实现的自动检测技术。

从积极的一面来看,这表明(至少一些)检测工具在痛苦金字塔上呈上升趋势——从几乎毫无意义的 IP 地址和域名等特征转向更深入地检测特定的工具技术。不过也可以公平地说,在这场猫捉老鼠的游戏中,攻击者似乎保持了优势。这可能是因为这些检测技术广泛可用,攻击者可以针对这些工具测试他们的工具包,并对其进行足够的修改以绕过它们。


感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里

继续滑动看下一个
Ots安全
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存